Приложение. Устаревшие функции для работы с BLOB-данными
Примечание
Приведенные ниже функции для работы с BLOB-данными являются устаревшими и не рекомендуются для использования в новых клиентских приложениях.
QtLinter-драйвер поддерживает два способа работы с BLOB-данными:
-
с помощью стандартных средств QSql-интерфейса;
-
с помощью специальных функций QtLinter-драйвера.
В первом способе работа с BLOB-данными выполняется так же, как и с данными любого другого типа:
-
выборка – с помощью SELECT-запроса;
-
извлечение – с помощью функции
QSqlQuery::data()
; -
добавление – с помощью претранслированного INSERT-запроса и привязкой в качестве параметра значения типа QVariant::ByteArray.
Единственный недостаток первого способа – необходимость достаточного количества оперативной памяти для размещения BLOB-значения целиком.
Во втором способе для работы с BLOB-данными используются специальные функции, встроенные в QtLinter-драйвер. Последовательность работы в этом случае должна быть следующей:
-
создание экземпляра класса QSqlQuery;
-
выполнение SELECT-запроса;
-
переход с помощью функции
fetch()
на строку выборки, содержащую нужные BLOB-данные; -
c помощью этого же экземпляра класса выполнение функции
prepare()
для BLOB-функции QtLinter-драйвера; -
привязка необходимых параметров (с помощью функции
bind()
).
Оперативная память при этом расходуется более экономно.